package com.yifei.model.entity.system;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yifei.base.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import lombok.experimental.Accessors;

import java.io.Serializable;

/**
 * 菜单管理(SysMenu)类
 *
 * @author yiFei
 * @since 2023-09-23 20:56:09
 */
@Data
@Builder
@EqualsAndHashCode(callSuper = false)
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
@ApiModel("菜单管理")
@TableName("sys_menu")
public class SysMenu extends BaseEntity implements Serializable {

    private static final long serialVersionUID = 564733225998017915L;

    @TableId
    private Long id;

    /**
     * 父菜单ID
     */
    @ApiModelProperty(value = "父菜单ID")
    private Long parentId;

    /**
     * 父节点ID路径
     */
    @ApiModelProperty(value = "父节点ID路径")
    private String treePath;

    /**
     * 菜单名称
     */
    @ApiModelProperty(value = "菜单名称")
    private String name;

    /**
     * 菜单类型(1:菜单；2:目录；3:外链；4:按钮)
     */
    @ApiModelProperty(value = "菜单类型(1:菜单；2:目录；3:外链；4:按钮)")
    private Integer type;

    /**
     * 路由路径(浏览器地址栏路径)
     */
    @ApiModelProperty(value = "路由路径(浏览器地址栏路径)")
    private String path;

    /**
     * 组件路径(vue页面完整路径，省略.vue后缀)
     */
    @ApiModelProperty(value = "组件路径(vue页面完整路径，省略.vue后缀)")
    private String component;

    /**
     * 权限标识
     */
    @ApiModelProperty(value = "权限标识")
    private String perm;

    /**
     * 显示状态(1-显示;0-隐藏)
     */
    @ApiModelProperty(value = "显示状态(1-显示;0-隐藏)")
    private Integer visible;

    /**
     * 排序
     */
    @ApiModelProperty(value = "排序")
    private Integer sort;

    /**
     * 菜单图标
     */
    @ApiModelProperty(value = "菜单图标")
    private String icon;

    /**
     * 跳转路径
     */
    @ApiModelProperty(value = "跳转路径")
    private String redirect;

}
